//package com.wky1.wang1.filter;
//
//import com.alibaba.fastjson.JSONObject;
//import com.wky1.wang1.JwtUtils;
//import com.wky1.wang1.Request;
//import lombok.extern.slf4j.Slf4j;
//import org.springframework.util.StringUtils;
//
//import javax.servlet.*;
//import javax.servlet.annotation.WebServlet;
//import javax.servlet.http.HttpServlet;
//import javax.servlet.http.HttpServletRequest;
//import javax.servlet.http.HttpServletResponse;
//import java.io.IOException;
//@Slf4j
////配置拦截的路径
//@WebServlet(urlPatterns = "/*")
//public class GuolvFilter implements Filter {
//    @Override
//    public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
//        HttpServletRequest request=(HttpServletRequest) servletRequest;
//        HttpServletResponse response=(HttpServletResponse) servletResponse;
//
//        //1、判断请求路径里面是否含有登录的，有放行、没有拦截住判断是否有JWT令牌
//        String url=request.getRequestURL().toString();//获取请求头的路径
//        log.info(url);//控制台输出
//        if(url.contains("denglu")){
//            //判断路径是否含有登录的，有放行
//            log.info("是登录请求放行");
//            filterChain.doFilter(servletRequest,servletResponse);
//            return;
//        }
//        //2判断是否有JWT令牌，有JWT令牌判断是否有效、没有返回错误信息
//        String jwt=request.getHeader("token");//获取jwt
//        if(!StringUtils.hasText(jwt)){
//            //判断jwt存不存在，不存在返回错误信息
//            log.info("请求头不存在jwt令牌");
//            Request error=Request.error("未登录信息");
//            //JSON格式只有Controller能自动生成JSON格式、别的类需要自动转换成JSON格式
//            String err= JSONObject.toJSONString(error);
//            //返回到浏览器
//            response.getWriter().write(err);
//            return;
//        }
//        //3、判断JWT令牌是否有效，有效放行、没有返回错误信息
//        try{
//            JwtUtils.jianchaJWT(jwt);
//        }catch (Exception e){
//            e.printStackTrace();
//            log.info("解析失败，返回错误信息");
//            Request error=Request.error("未登录信息");
//            //JSON格式只有Controller能自动生成JSON格式、别的类需要自动转换成JSON格式
//            String err= JSONObject.toJSONString(error);
//            //返回到浏览器
//            response.getWriter().write(err);
//            return;
//        }
//        //放行
//        log.info("令牌有效放行");
//        filterChain.doFilter(servletRequest,servletResponse);
//
//    }
//}
